Experiments wiht Destructive Updates in a Lazy Functional Language
نویسندگان
چکیده
The aggregate update problem has received considerable attention since pure functional programming languages were recognised as an interesting research topic. There is extensive literature in this area, which proposes a wide variety of solutions. We have tried to apply some of the proposed solutions to our own applications to see how these solutions work in practice. We have been able to use destructive updates but are not convinced that this could have been achieved without application specific knowledge. In particular, no form of update analysis has been reported that is applicable to non-flat domains in polymorphic languages with higher order functions. It is our belief that a refinement of the monolithic approach towards constructing arrays may be a good alternative to using the incremental approach with destructive updates.
منابع مشابه
Experiments with destructive updates in a lazy functional language
The aggregate update problem has received considerable attention since pure functional programming languages were recognised as an interesting research topic. There is extensive literature in this area, which proposes a wide variety of solutions. We have tried to apply some of the proposed solutions to our own applications to see how these solutions work in practice. We have been able to use de...
متن کاملStatic Analysis for Safe Destructive Updates in a Functional Language
Functional programs are more amenable to rigorous mathematical analysis than imperative programs, but are typically less efficient in terms of execution space and time. The update of aggregate data structures, such as arrays, are a significant source of space/time inefficiencies in functional programming. Imperative programs can execute such updates in place, whereas the semantics of functional...
متن کاملCLEAN: a programming environment based on term graph rewriting
The main features of the lazy functional language Concurrent Clean and of its semantics based on Term Graph Rewriting are presented. 1 History The pure, lazy functional language Concurrent Clean (version 1.0) is a major upgrade of the previous release (0.84b) of Clean ((3,10,11]). Clean was originally designed as an experimental intermediate language and deliberately kept syntactically as poor ...
متن کاملLazy Wheel Sieves and Spirals of Primes
The popular method of enumerating the primes is the Sieve of Eratosthenes. It can be programmed very neatly in a lazy functional language, but runs rather slowly. A little-known alternative method is the Wheel Sieve, originally formulated as a fast imperative algorithm for obtaining all primes up to a given limit, assuming destructive access to a bit-array. This article describes functional var...
متن کاملAvoiding Unnecessary Updates
Graph reduction underlies most implementations of lazy functional languages, allowing separate computations to share results when sub-terms are evaluated. Once a term is evaluated, the node of the graph representing the computation is updated with the value of the term. However , in many cases, no other computation requires this value, so the update is unnecessary. In this paper we take some st...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- Comput. Lang.
دوره 20 شماره
صفحات -
تاریخ انتشار 1994